package com.sugar.real.estate.module.business.service.infocls;

import com.sugar.real.estate.framework.common.pojo.PageResult;
import com.sugar.real.estate.module.business.controller.admin.infocls.vo.InfoClsPageReqVO;
import com.sugar.real.estate.module.business.controller.admin.infocls.vo.InfoClsSaveReqVO;
import com.sugar.real.estate.module.business.controller.admin.infocls.vo.InfoClsSimpleRespVO;
import com.sugar.real.estate.module.business.dal.dataobject.infocls.InfoClsDO;

import javax.validation.Valid;
import java.util.List;

/**
 * 资讯分类 Service 接口
 *
 * @author Ysugar
 */
public interface InfoClsService {

    /**
     * 创建资讯分类
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createInfoCls(@Valid InfoClsSaveReqVO createReqVO);

    /**
     * 更新资讯分类
     *
     * @param updateReqVO 更新信息
     */
    void updateInfoCls(@Valid InfoClsSaveReqVO updateReqVO);

    /**
     * 删除资讯分类
     *
     * @param id 编号
     */
    void deleteInfoCls(Long id);

    /**
     * 获得资讯分类
     *
     * @param id 编号
     * @return 资讯分类
     */
    InfoClsDO getInfoCls(Long id);

    List<InfoClsSimpleRespVO> getInfoClsAll();

    /**
     * 获得资讯分类分页
     *
     * @param pageReqVO 分页查询
     * @return 资讯分类分页
     */
    PageResult<InfoClsDO> getInfoClsPage(InfoClsPageReqVO pageReqVO);

    // ======================================== APP 接口 ========================================

    List<InfoClsSimpleRespVO> appGetInfoClsAll();
}